帳號:
密碼:
最新動態
產業快訊
CTIMES / 文章 /
適合工業應用穩固的 SPI/I2C 通訊
 

【作者: ADI】   2022年08月25日 星期四

瀏覽人次:【4004】

串行周邊介面(SPI)和I2C介面是時下流行的通訊標準。工廠自動化、建築自動化、狀態監測和結構監控等應用要求周邊位於遠端位置,為量測控制增加了難度。預測添加性維護(PdM)是智慧產業的關鍵組成部分,透過運行期間監控設備以檢測潛在故障的預警跡象,藉以提升效益。


電路功能與優勢

對於控制器和周邊設備之間的短距離電路板內連接,串行周邊介面(SPI)和Inter-Integrated Circuit(I2C)介面是時下流行的通訊標準。由於存在廣泛的硬體 和軟體支援,SPI和I2C已被感測器、執行器和資料轉換器製造商廣泛採用。當控制器和周邊設備位於同一電路板上、共用同一接地層且相距不遠(不大於1公尺) 時,這些介面的實現相當簡單。


但是,狀態監測、工廠自動化、建築自動化和結構監控等應用要求周邊位於遠端位置,通常遠離控制器。系統設計人員傳統上利用中繼器或具有更高驅動強度的驅動器來擴展這些介面,其代價是整體成本和功耗增加。


圖1所示電路輕而易舉解決了長距離、穩固的SPI/I2C 通訊問題,對電路元件數量、工作速度或軟體複雜性則沒有任何影響。為了在高雜訊、惡劣的工業環境中無錯誤運行,元件必須能承受較大地電位差。 SPI/I2C擴展器具有穩固的收發器,可在+/-25V(SPI通訊)和+/-15V(I2C通訊)的擴展共模範圍內工作,支援長達1200公尺的距離。每個鏈路由位於電纜任一端的單個元件組成,電源電壓範圍為3V至5.5V,而單獨的邏輯電源允許I2C或SPI介面從1.62V至5.5V電源供電。 擴展器還提供了用於故障監測的內部控制介面;當長距離監測設備時,這非常重要。



圖1 : EVAL-CN0564-ARDZ 簡化功能框圖
圖1 : EVAL-CN0564-ARDZ 簡化功能框圖

電路描述

I2C訊號標準綜述 I2C 是用於雙向雙線介面的串列協定,可將 EEPROM、類比數位和數位類比轉換器、I/O 介面及其他周邊連接到嵌入式處理器。由於簡單且可擴展,其在感測器領域非常受歡迎。匯流排上可以存在多個元件,每個元件都有自己的唯一位址。它只需要 2 條線便可在元件之間傳輸資料。這2條線包括:


*SCL—串列時脈訊號線


*SDA—用於在控制器和周邊之間發送和接收資料的串列資料線


SCL和SDA訊號是開漏邏輯,I2C匯流排規範和使用者手冊中定義了邏輯位準和時序規格,提供I2C匯流排上可以存在的周邊數量受位址空間和最大400 pF的匯流排總電容限制。開漏邏輯具有相對較高的阻抗和較低的雜訊抗擾度,這就要求所有周邊以低阻抗連接到公共接地迴路,並且在100kHz時, 最大匯流排長度以大約一公尺為限。CN0564則不同,其具有差分收發器,可將匯流排長度擴展至1200公尺,並能承受控制器和周邊之間最高+/-15V的共模壓差。


SDA本質上是雙向的,在交易處理過程中,控制器與周邊之間的資料流程向會改變方向。雖然不是很常見,但是I2C支援時脈延展,即周邊可以讓SCK保持 低位準以減慢時脈速率。因此,SCL也是雙向的。I2C的雙向性質使其不便於利用緩衝器擴展、隔離或轉換到其他實體層,這需要多種邏輯位準和其他非 標準技術。


常見I2C總線速度為100 kHz標準模式和400 kHz快速模式。LTC4331控制器介面支援最高2000 kHz的所有常見I2C時脈速率。然而,在高時脈頻率和長電纜的情況下,強烈建議使用完全支援SCL時脈延展的控制器。


SPI 訊號標準綜述

串列周邊介面(SPI)是一種同步串列通訊介面規範, 用於短距離通訊,主要用在嵌入式系統中。與 I2C 不同,SPI 的定義不嚴格。其支援多種時脈頻率、 邏輯位準和時序關係,需要仔細檢查控制器和周邊規格。SPI 是全雙工通訊(即資料既可從控制器流向周邊,同時也可從周邊流向控制器)。


SPI實體層由4個訊號組成:


*SCLK - 串列時脈,通常由控制器驅動


*MISO - 控制器資料登錄、周邊資料輸出


*MOSI - 控制器資料輸出、周邊資料登錄


*CS – 晶片選擇支援與周邊通訊。每個周邊需要一條CS線。


SPI接腳使用推挽邏輯(而不是開漏),控制器和周邊之間的邏輯位準必須匹配。每個周邊都需要自己的CS訊號,這使SPI匯流排的物理擴展進一步複雜化。



圖2 : SPI 配置模式
圖2 : SPI 配置模式

時脈和資料之間支援四種不同的時序關係,分別稱為模式0、1、2、3,對應於四種可能的時脈配置。 每個事務都是在晶片選線被驅動到邏輯低位準時開始(晶片選擇通常是低位準有效訊號)。晶片選擇、資料和時脈線之間的確切關係取決於時脈極性(CPOL)和時脈相位(CPHA)的配置。這四種模式總結在圖2中。


LTC4332最多支援3個遠端周邊,每個周邊都有自己的CS線。每個周邊的SPI模式都可以獨立設定為模式0、1、2或3。資料從控制器透明的傳輸到周邊, 但從周邊到控制器的資料會引入一個字的延遲。


系統拓撲

CN0564使用LTC4331和LTC4332來擴展I2C和SPI訊號,距離最長可達1200公尺。每個鏈路由一對元件組成,控制器側配置為本地模式(REMOTE接腳接低位準),周邊側元件配置為遠端模式(REMOTE接腳接高位準)。


LTC4332/LTC4331將來自控制器的SPI/I2C訊號編碼為差分訊號,然後透過雙絞線電纜傳輸。在電纜的遠端,差分訊號由遠端LTC4332/LTC4331接收並 解碼回SPI/I2C,然後路由到遠端周邊。正常工作時, 遠端周邊會鏡像本地控制器產生的事件。


可選串列傳輸速率

LTC4332/LTC4331可以使用可選速度索引改變鏈路串列傳輸速率—即資料在本地和遠程鏈路之間傳輸的速度。此速度索引透過配置鏈路和介面時序選擇接腳SPEED1和SPEED2來設定,這 兩個接腳均為三態輸入。


電纜上的可選串列傳輸速率支援根據應用要求平衡性能與電纜長度。但是,鏈路兩側的速度配置必須相同。


增加電纜傳輸長度

LTC4332/LTC4331利用高速差分收發器在最長1200公尺的鏈路上通訊。I2C/SPI訊號轉換為差分訊號以實現高速高品質訊號傳輸、雜訊抗擾度和共模抑制。對於提供的速度設定,必須遵守表1(適用於 LTC4331)和表2(適用於LTC4332)中提供的電纜長度規格,否則鏈路不會工作。表中的值是在實驗室環境中使用Cat5E乙太網路電纜測得。請注意,實際最大電纜長度取決於電纜類型和應用環境。


共模電壓和 ESD穩固性

差分收發器工作在+/-25V(SPI擴展器)和+/-15V(I 2 C 擴展器)的擴展共模範圍內,因此它適合於高雜訊環境或存在接地電位差的系統(參見圖1)。


介面接腳(LTC4331 A和B接腳,LTC4332 A、B、Y 和Z接腳)具有故障保護功能,可承受最高+/-60V的 電壓。介面接腳還有異常穩固的靜電放電(ESD)保 護特性。在所有工作模式下,或在未供電時,介面接腳能承受相對於GND和VCC(具有4.7μF電容接 GND)的+/-40kV HBM ESD(人體模型測試),而不 會發生閂鎖或損壞。


另外,LTC4331/LTC4332 ESD均通過了國際電工委員會(IEC) ESD和EFT(電氣快速瞬態)測試。IEC ESD應力在峰值電流、幅度和上升時間方面均超過了HBM測試,而EFT測試提供了長時間的重複應力。 這種保護等級可確保LTC4332/LTC4331在各種實際危險下都能如常運行。


一字延遲 - SPI 讀取命令

在I2C通訊的情況下,LTC4331(本地)— LTC4331(遠端)鏈路是透明的;遠端周邊顯示為本地控制器的本地元件。 但是,對於SPI擴展器解決方案,LTC4332(本地)— LTC4332(遠端)在存取期間會引起一個字的延遲。從SPI控制器發送到周邊的資料會經歷與控制器啟動的介面時脈(SCK)相同的延遲,因此兩者在整個資料連結上會保持同步。


在相反方向上,僅當第一時脈緣到達周邊時,周邊才將MISO資料發送到控制器。此資料在返回控制器的路徑上會經歷第二次延遲,因此MISO資料會不同步,偏差為電纜傳輸延遲的兩倍。物理上較遠的元件將需要大幅降低時脈速率以適應每個位元寬度內的傳輸延遲。為了克服這種限制,LTC4332 將移位暫存器引入MISO訊號路徑,如圖3所示。



圖3 : 將移位暫存器引入 MISO 訊號路徑以適應傳輸延遲
圖3 : 將移位暫存器引入 MISO 訊號路徑以適應傳輸延遲

因此,對遠端周邊的SPI寫請求是軟體透明的,但對遠端周邊的SPI讀取請求會產生一個字的延遲,表示讀取命令需要擴展一個字。若不這麼做,則當晶片選擇取消置位時,LTC4332 MISO移位暫存器中的最後一個字會丟失。WORD_LENGTH暫存器表示LTC4332上MISO訊號路徑中的移位暫存器的深度,決定了 SPI控制器何時開始在MISO線上接收有效資料。例如,若WORD_LENGTH為8,則在CS置為有效後經過8個時脈週期,使用者將開始接收有效MISO資料。


故障監控

LTC4331/LTC4332LINK 接腳表示通訊鏈路的狀態,驅動到低位準時表示遠端I2C/SPI匯流排已加入本地I2C/SPI匯流排。 LTC4331/LTC4332支援中斷訊號,LTC4331上為ALERT接腳,LTC4332上為INT接腳。這些訊號從遠端匯流排鏡像到本地匯流排。


在遠端,中斷接腳是輸入,可以連接到相連I2C/SPI周邊的中斷輸出。在本地端,ALERT/INT用於開漏輸出,可以連接到共享本地中斷線。如果啟用,本地LTC4331/LTC4332 的控制介面將使用ALERT/INT 接腳報告鏈路和故障事件。本地側ALERT/INT輸出是遠端ALERT/INT 與內部端點中斷訊號的邏輯「AND」結果。


本地側LTC4331/LTC4332還可以透過讓ON接腳保持低位準至少180ms來觸發遠程側復位。如果鏈路斷開,遠程LTC4331/LTC4332會在180ms後自動複位。遠端復位會禁用所有遠端側輸出,直到重新建立鏈路通訊。



圖4 : 讀/寫故障監控暫存器的控制介面時序圖
圖4 : 讀/寫故障監控暫存器的控制介面時序圖

LTC4331/LTC4332 控制介面要配置LTC4331/LTC4332鏈路本地側的控制介面,可使用單獨的內部可定址周邊。透過配置接腳A1和A2,可為本地LTC4331的內部介面分配一個唯一的I2C位址。LTC4332則提供了單獨的晶片選擇接腳SSC,允許用戶與內部SPI可定址暫存器通訊。



圖5 : LTC4332(左側)和 LTC4331(右側)的內部框圖
圖5 : LTC4332(左側)和 LTC4331(右側)的內部框圖

LTC4331/LTC4332控制介面支援讀取速度配置、鏈路狀態和中斷/警報狀態,以及存取其他I2C/SPI特定選項。LTC4331可以配置為將I2C位址轉換為遠端 周邊,從而擴展I2C位址空間並防止地址衝突。 LTC4332允許每個CS接腳使用獨立的SPI模式配置, 以及配置字長(用於確定所接收的資料延遲)。


PCB 尺寸

PCB設計中的元件密度增加會導致複雜的問題。為了編碼SPI或I2C,通常需要額外的微控制器,這會增加解決方案成本和尺寸,但使用CN0564的話,遠程側無需額外的微控制器。這樣可實現更小的感測器解決方案,其佔用的PCB面積更小,從而降低製造總成本,並為其他元件留下更多空間以提供更多特性。



圖6 : LTC4331(I2C 擴展器)和 LTC4332(SPI 擴展器)的本地 EVAL-CN0564-ARDZ 節點和遠端節點
圖6 : LTC4331(I2C 擴展器)和 LTC4332(SPI 擴展器)的本地 EVAL-CN0564-ARDZ 節點和遠端節點

擴展感測器介面功能

更長傳輸距離的感測器介面傳統上使用類比訊號技術,例如0-10V或4-20 mA。例如,在狀態監測應用中,整合電子壓電(IEPE)感測器介面是振動傳感 器最常用的訊號標準。其為振動感測器提供恆定電流源,感測器輸出電壓透過相同線路讀回。當傳輸交流訊號內容時,這種雙線系統可以簡化系統設計, 但不提供額外的故障監控或配置能力。


LTC4332/LTC4331則支援彈性的配置和處理,發 故障事件時可直接在數位輸出感測器上輕鬆除錯。


常見變化

當本地和遠端地電位之差超過容許的+/-25V(LTC4332)或+/-15V(LTC4331)時,需要使用電氣隔離。使用ADUM141E或ADUM140E之類的數位隔離器, 可以將I2C/SPI訊號與EVAL-CN0564-ARDZ上的本地LTC4331/ LTC4332進行電氣隔離,如圖7所示。



圖7 : 包含對資料和電源訊號進行電氣隔離的框圖
圖7 : 包含對資料和電源訊號進行電氣隔離的框圖

ADUM5020可為本地LTC4331/LTC4332提供高達100mA的隔離電源。


電路評估與測試

以下部分介紹CN0564如何設定和測試。EVALCN0564-ARDZ可以與Arduino或Arduino相容設備配合使用,以利用EVAL-ADXL357Z讀取加速度數據,進而輕鬆評估SPI(LTC4332)和I2C(LTC4331)擴展器。以下部分側重於在EVAL-CN0564-ARDZ上設定SPI擴展器(本地和遠端LTC4332)。


設備要求

*具有USB埠的PC


*EVAL-CN0564-ARDZ 評估板


*EVAL-ADXL357 評估板


*EVAL-XLMOUNT1


*Arduino UNO Rev 3


*USB A型轉USB B型電纜


*跳接線


*5V/3.3V 電源


開始使用

1.下載為評估EVAL-CN0564-ARDZ評估板上的SPI或I2C擴展器而提供的 Arduino草圖,並使用其對Arduino進行編程。


2.將EVAL-CN0564-ARDZ板插入Arduino Uno Rev 3


3.將EVAL-CN0564-ARDZ上的 LTC4332(遠端側)連接到 EVAL-ADXL357


4.使用雙絞線中的跳接線將 LTC4332(本地側)連接到 LTC4332(遠端側)


5.跳接線連接如下:


a.正確放置 P10 跳接線,使得 P10 上的接腳 2 和 3 在 EVAL-CN0564-ARDZ 上相連。這將選擇 5V 電源選項。


b.JP1 跳接線應放置到位置 D,以將本地 LTC4332 上的從元件/晶片選擇接腳連接到 Arduino UNO Rev 3 上的 D10 接腳。


c.JP5 跳接線應放置到位置 A,以將本地 LTC4332 上的 LINK 接腳連接到 Arduino UNO Rev 3 上的 D6 接腳。


d.JP3 跳接線應放置到位置 B,以將本地 LTC4332 上的中斷接腳連接到 Arduino UNO Rev 3 上的 D2 接腳。


e.預設情況下,遠端 LTC4332 選擇速度索引 8。本地側的速度索引應與遠端側相同。


f.應將 P1 跳接線放置到位,使得其接腳 2 和 3 相連。同樣,還應將 P2 跳接線放置到位, 使得其接腳 2 和 3 相連。這將選擇速度索引 8 以匹配本地側的速度索引。


g.正確放置 P19 跳接線,使得其接腳 1 和 2 相連。這會將本地 LTC4332 上的 ON 接腳連接到 IOREF。這將啟用輸入。


圖8 : 本地和遠端 LTC4332 上的跳接線配置
圖8 : 本地和遠端 LTC4332 上的跳接線配置

系統測試

將EVAL-ADXL357Z和遠端LTC4332安裝在EVALXLMOUNT1上,然後接通為電路板供電的電源。現在應能夠在EVAL-CN0564-ARDZ板上看到3個LED 閃爍(本地2個LED,遠端側1個LED)。完整系統框圖參見圖9。


MEMS加速度計(遠端側EVAL-ADXL357Z上)讀取的X、Y和Z資料,將顯示在Arduino串列監視器上。退出Arduino串列監視器並運行Python Real Time ADXL357 Data Plotter可執行檔,查看加速度數據的即時圖,如圖10所示的圖形。 X、Y和Z加速度(g)資料由python腳本儲存在三個單獨的檔中,可以在包含可執行檔的位置中找到。



圖9 : 採用 ADXL357 和 Arduino UNO Rev 3 的 EVAL-CN0564-ARDZ 系統測試設定
圖9 : 採用 ADXL357 和 Arduino UNO Rev 3 的 EVAL-CN0564-ARDZ 系統測試設定
圖10 : 加速度數據的即時圖
圖10 : 加速度數據的即時圖

也可以獲得圖11所示的FFT分析,以使用所獲得的 X、Y和Z資料識別目標頻率。FFT分析常用於監視旋轉零件的健康狀況。預測性維護(PdM)是智慧產業的關鍵組成部分,其涉及在運行期間監控設備以檢測潛在故障的預警跡象。


圖11 : Z軸加速度數據的 FFT 分析
圖11 : Z軸加速度數據的 FFT 分析
相關文章
具備超載保護USB 供電ISM無線通訊
以GMSL取代GigE Vision的相機應用方案
運用PassThru技術延長儲能系統壽命
巨磁阻多圈位置感測器的磁體設計
為新一代永續應用設計馬達編碼器
comments powered by Disqus
相關討論
  相關新聞
» 貿澤電子2024年第一季度推出逾10,000項新元件
» 宜特2024年第一季合併營收突破10億元 高階晶片驗證訂單加持表現亮眼
» SAP加速AI驅動供應鏈創新 推動製造業轉型
» 宇瞻邁入綠色顯示市場 成功開發膽固醇液晶全彩電子紙
» 調研:2024年中國ADAS市場邁向Level 3自動駕駛


刊登廣告 新聞信箱 讀者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 遠播資訊股份有限公司版權所有 Powered by O3  v3.20.2048.3.17.79.60
地址:台北數位產業園區(digiBlock Taipei) 103台北市大同區承德路三段287-2號A棟204室
電話 (02)2585-5526 #0 轉接至總機 /  E-Mail: webmaster@ctimes.com.tw